var treeData;
	
$(document).ready(function () {
	var base = $("base")[0].href;
	$.ajax({
        type: 'POST',
        async: false,
        url: base+'repository/database/getSimpleList.shtml',
        data: {},
        success: function (data) {
        	for (var i=0; i<data.length; i++){
        		$("#transRepositoryId").append('<option value="' + data[i].repositoryId + '">' + data[i].repositoryName + '</option>');
        	}
        },
        error: function () {
            alert("请求失败！请刷新页面重试");
        },
        dataType: 'json'
    });
    $.ajax({
        type: 'POST',
        async: false,
        url: base+'category/getSimpleList.shtml',
        data: {},
        success: function (data) {
            for (var i=0; i<data.length; i++){
                $("#categoryId").append('<option value="' + data[i].categoryId + '">' + data[i].categoryName + '</option>');
            }
        },
        error: function () {
            alert("请求失败！请刷新页面重试");
        },
        dataType: 'json'
    });
	$.ajax({
        type: 'POST',
        async: false,
        url: base+'quartz/getSimpleList.shtml',
        data: {},
        success: function (data) {
        	for (var i=0; i<data.length; i++){
        		$("#transQuartz").append('<option value="' + data[i].quartzId + '">' + data[i].quartzDescription + '</option>');
        	}
        },
        error: function () {
            alert("请求失败！请刷新页面重试");
        },
        dataType: 'json'
    });	
	// $("#customerQuarz").cronGen({
    	// direction : 'left'
	// });
	//输入/出源
	$.ajax({
			type: 'POST',
			async: false,
			url: base+'repository/database/getDatabase.shtml',
			data: {},
			success: function (data) {
				for (var i=0; i<data.length; i++){
					var rDatabase = new String();
					rDatabase = data[i].idDatabase+"_"+data[i].name;
					$("#inputsourceIds").append('<option value="' + rDatabase + '">' + data[i].name + '</option>');
					$("#outputsourceIds").append('<option value="' + rDatabase + '">' + data[i].name + '</option>');
				}
			},
			error: function () {
				alert("请求失败！请刷新页面重试");
			},
			dataType: 'json'
	});
	//下拉多选框
	selectMultip = {
		register: function(id) {
			 var dataArr = document.querySelectorAll("[multip]");
			 for (var i = 0;i<dataArr.length;i++) {
				 render(dataArr[i]);
			 }
		},
		reload: function(id, data, setData) {
			var htm = "";
			for(var i = 0; i < data.length; i++) {
				htm += '<option value="' + data[i].value + '">' + data[i].text + '</option>'
			}
			var e = document.getElementById(id);
			e.innerHTML = htm;
			render(e);
			this.setVal(id, setData);
		},
		setVal: function(id, str) {
			var type = Object.prototype.toString.call(str);
			switch(type) {
				case "[object String]":
					document.getElementById(id).val = str;
					break;
				case "[object Array]":
					document.getElementById(id).val = str.toString();
					break;
				default:
					break;
			}
		},
		getVal: function(id) {
			return document.getElementById(id).val;
		},
	};
	//注册使用多选框
	selectMultip.register();
});

function render(e) {
	e.param = {
		arr: [],
		valarr: [],
		opts: []
	};
	var choosevalue = "",
		op;

	for(var i = 0; i < e.length; i++) {
		op = e.item(i);
		e.param.opts.push(op);
		if(op.hasAttribute("choose")) {
			if(choosevalue == "") {
				choosevalue = op.value
			} else {
				choosevalue += "," + op.value;
			}

		}
	}

	//创建一个隐藏的option标签用来存储多选的值，其中的值为一个数组
	var option = document.createElement("option");
	option.hidden = true;
	e.appendChild(option);
	e.removeEventListener("change", selchange);
	e.addEventListener("change", selchange);

	//重新定义标签基础属性的get和set方法，实现取值和赋值的功能
	Object.defineProperty(e, "val", {
		get: function() {
			return this.querySelector("[hidden]").value;
		},
		set: function(value) {
			e.param.valarr = [];
			var valrealarr = value == "" ? [] : value.split(",");
			e.param.arr = [];
			e.param.opts.filter(function(o) {
				o.style = "";
			});
			if(valrealarr.toString()) {
				for(var i = 0; i < valrealarr.length; i++) {
					e.param.opts.filter(function(o) {
						if(o.value == valrealarr[i]) {
							o.style = "color: blue;";
							e.param.arr.push(o.text);
							e.param.valarr.push(o.value)
						}
					});
				}
				this.options[e.length - 1].text = e.param.arr.toString();
				this.options[e.length - 1].value = e.param.valarr.toString();
				this.options[e.length - 1].selected = true;
			} else {
				this.options[0].selected = true;
			}

		},
		configurable: true
	})
	//添加属性choose 此属性添加到option中用来指定默认值
	e.val = choosevalue;
	//添加属性tip 此属性添加到select标签上
	if(e.hasAttribute("tip") && !e.tiped) {
		e.tiped = true;
		e.insertAdjacentHTML('afterend', '<i style="color: red;font-size: 12px">*可多选</i>');
	}
};

function selchange() {
	var text = this.options[this.selectedIndex].text;
	var value = this.options[this.selectedIndex].value;
	this.options[this.selectedIndex].style = "color: blue;";
	var ind = this.param.arr.indexOf(text);
	if(ind > -1) {
		this.param.arr.splice(ind, 1);
		this.param.valarr.splice(ind, 1);
		this.param.opts.filter(function(o) {
			if(o.value == value) {
				o.style = "";
			}
		});
	} else {
		this.param.arr.push(text);
		this.param.valarr.push(value);
	}
	this.options[this.length - 1].text = this.param.arr.toString();
	this.options[this.length - 1].value = this.param.valarr.toString();
	if(this.param.arr.length > 0) {
		this.options[this.length - 1].selected = true;
	} else {
		this.options[0].selected = true;
	}
};

$("#transRepositoryId").change(function(){
	var repositoryId = $(this).val(); 
	if (repositoryId > 0){
		$.ajax({
			type: 'POST',
		 	async: false,
		 	url: 'repository/database/getTransTree.shtml',
		 	data: {
		 		repositoryId : repositoryId  
		    },
		    success: function (data) {
		  		treeData = data;
	 		},
		 	error: function () {
		  		alert("请求失败！重新操作");
		 	},
		 	dataType: 'json'
		});
	}else{
		treeData = null;	
	}  
});

$("#transPath").click(function(){	
	var $transRepositoryId = $("#transRepositoryId").val();
	if (treeData != null){
		var index = layer.open({
			type: 1,
			title: '请选择转换',
			area: ["300px", '100%'],
			skin: 'layui-layer-rim',
			content: '<div id="repositoryTree"></div>'
		});
		$('#repositoryTree').jstree({
            'core': {
                'data': treeData
            },
            'plugins' : ["search"]
        }).bind('select_node.jstree', function (event, data) {  //绑定的点击事件
        	var transNode = data.node;
        	if (transNode.icon == "none"){
        		var transPath = "";
        		//证明是最子节点
        		for (var i = 0; i < treeData.length; i++){
        			if (treeData[i].id == transNode.parent){
        				transPath = treeData[i].path;
        			}
        		}
        		for (var i = 0; i < treeData.length; i++){
        			if (treeData[i].id == transNode.id){
        				transPath += "/" + treeData[i].text;
        			}	
        		}
        		layer.close(index);
        		$("#transPath").val(transPath);
        	}
        });	
	}else if($transRepositoryId != "" && treeData == null){
		layer.msg("请等待资源库加载");
	}else if($transRepositoryId == ""){
		layer.msg("请先选择资源库");
	}	
});

// $("#changeQuartz").click(function(){
// 	$("#default").toggle();
// 	$("#custom").toggle();
// 	$("#transQuartz").val("");
// 	$("#customerQuarz").val("");
// });

$.validator.setDefaults({
	highlight: function (element) {
        $(element).closest('.form-group').removeClass('has-success').addClass('has-error');
    },
    success: function (element) {
        element.closest('.form-group').removeClass('has-error').addClass('has-success');
    },
    errorElement: "span",
    errorPlacement: function (error, element) {
        if (element.is(":radio") || element.is(":checkbox")) {
            error.appendTo(element.parent().parent().parent());
        } else {
            error.appendTo(element.parent());
        }
    },
    errorClass: "help-block m-b-none",
    validClass: "help-block m-b-none"	
});
$().ready(function () {
    var icon = "<i class='fa fa-times-circle'></i> ";
		var base = $("base")[0].href;
    $("#RepositoryTransForm").validate({
        rules: {
            transRepositoryId:{
                required: true
            },
        	transPath: {
        		required: true
        	},
            categoryId: {
                required: true,
            },
        	transName: {
        		required: true,
        		maxlength: 50
        	},
            transQuartz:{
                required: true
            },
        	transLogLevel: {
        		required: true
        	},
        	transDescription: {
        		maxlength: 500
        	}
        },
        messages: {
            transRepositoryId:{
                required: icon + "请选择资源库"
            },
        	transPath: {
        		required: icon + "请选择转换",
        	},
            categoryId:{
                required: icon + "请选择作业分类"
            },
        	transName: {
        		required: icon + "请输入转换名称",
        		maxlength: icon + "转换名称不能超过50个字符"
        	},
            transQuartz:{
                required: icon + "请选择转换执行策略"
            },
            transLogLevel: {
        		required: icon + "请选择转换的日志记录级别",
        	},
        	transDescription: {
        		maxlength: icon + "转换描述不能超过500个字符"
        	}
        },
        submitHandler:function(form){
        		$.post(base+"trans/insert.shtml", decodeURIComponent($(form).serialize(),true), function(data){
        				var result = JSON.parse(data);
								if(result.status == "success"){
									layer.msg('添加成功',{
												time: 2000,
												icon: 6
											});
											setTimeout(function(){
												location.href = base+"view/trans/listUI.shtml";
											},2000);
								}else {
									layer.msg(result.message, {icon: 2});
								}
    				});
        } 
    });
});

var cancel = function(){
	var base = $("base")[0].href;
	location.href = base+"view/trans/listUI.shtml";
}
